package smap;

import ConexaoBackupBD.ConexaoBD;
import BD.AtividadesBD;
import ConexaoBackupBD.MetodosVerificacaoBD;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import DAO.AtividadesDAO;
import java.text.ParseException;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;


public class TelaPrincipal extends javax.swing.JFrame {
    
    AtividadesDAO atDao = new AtividadesDAO();
    AtividadesBD at = new AtividadesBD();
    ConexaoBD BDraiz = new ConexaoBD();
    SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
    String data = "";
    Date dataAtual = new Date();
    ConexaoBD bd = new ConexaoBD();
    MetodosVerificacaoBD verificador = new MetodosVerificacaoBD();
   

    public TelaPrincipal() {
        ImageIcon icone = new ImageIcon("/home/dilso/Downloads/Untitled-4.gif");  
        setIconImage(icone.getImage());  
        initComponents();
    }
     
    /*método para atualizar a tela de acordo com a última data
    clicada no calendário*/
    public void refresh() throws ParseException{
        data = verificador.formatarDataEua(calendario.getDate());
        TabelaAtividades(data);
        TabelaAvisos();
    }
    @SuppressWarnings("unchecked")

    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        btnProfessor = new javax.swing.JButton();
        btnUsuario = new javax.swing.JButton();
        btnCurso = new javax.swing.JButton();
        btnDisciplina = new javax.swing.JButton();
        btnAluno = new javax.swing.JButton();
        btnBackup = new javax.swing.JButton();
        btnTurma = new javax.swing.JButton();
        jPanel2 = new javax.swing.JPanel();
        btnSair = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        tabelaAtividades = new javax.swing.JTable();
        jScrollPane2 = new javax.swing.JScrollPane();
        tabelaAvisos = new javax.swing.JTable();
        inserirAtividade = new javax.swing.JButton();
        alterar = new javax.swing.JButton();
        excluir = new javax.swing.JButton();
        calendario = new com.toedter.calendar.JCalendar();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Tela Principal");
        setIconImages(null);
        setResizable(false);
        addWindowFocusListener(new java.awt.event.WindowFocusListener() {
            public void windowGainedFocus(java.awt.event.WindowEvent evt) {
                formWindowGainedFocus(evt);
            }
            public void windowLostFocus(java.awt.event.WindowEvent evt) {
            }
        });

        jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(192, 192, 192)));

        btnProfessor.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/professor-icon.png"))); // NOI18N
        btnProfessor.setText("Professor");
        btnProfessor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnProfessorActionPerformed(evt);
            }
        });

        btnUsuario.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/user-icon.png"))); // NOI18N
        btnUsuario.setText("Usuario");
        btnUsuario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnUsuarioActionPerformed(evt);
            }
        });

        btnCurso.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/curso-icon.png"))); // NOI18N
        btnCurso.setText("Curso");
        btnCurso.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCursoActionPerformed(evt);
            }
        });

        btnDisciplina.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/disciplina-icon.png"))); // NOI18N
        btnDisciplina.setText("Disciplina");
        btnDisciplina.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnDisciplinaActionPerformed(evt);
            }
        });

        btnAluno.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/aluno-icon.png"))); // NOI18N
        btnAluno.setText("Aluno");
        btnAluno.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAlunoActionPerformed(evt);
            }
        });

        btnBackup.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/backup-icon.png"))); // NOI18N
        btnBackup.setText("Backup");
        btnBackup.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnBackupActionPerformed(evt);
            }
        });

        btnTurma.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/turma-icon.png"))); // NOI18N
        btnTurma.setText("Turma");
        btnTurma.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnTurmaActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(btnUsuario, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(btnProfessor, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(btnAluno, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(btnDisciplina, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(btnCurso, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(btnTurma, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(btnBackup, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(21, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnProfessor)
                    .addComponent(btnUsuario)
                    .addComponent(btnAluno)
                    .addComponent(btnDisciplina)
                    .addComponent(btnCurso, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(btnBackup)
                    .addComponent(btnTurma))
                .addContainerGap())
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(192, 192, 192)));

        btnSair.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/Login-out-icon.png"))); // NOI18N
        btnSair.setText("Sair");
        btnSair.setPreferredSize(new java.awt.Dimension(53, 30));
        btnSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSairActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(535, 535, 535)
                .addComponent(btnSair, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(btnSair, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        tabelaAtividades.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Horário", "Atividade", "Concluída?", "CodAtiv", "UsuarioSistema"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.Boolean.class, java.lang.Integer.class, java.lang.Integer.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tabelaAtividades.setFocusable(false);
        tabelaAtividades.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        tabelaAtividades.getTableHeader().setReorderingAllowed(false);
        tabelaAtividades.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tabelaAtividadesMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(tabelaAtividades);
        tabelaAtividades.getColumnModel().getColumn(0).setPreferredWidth(60);
        tabelaAtividades.getColumnModel().getColumn(1).setPreferredWidth(400);
        tabelaAtividades.getColumnModel().getColumn(2).setPreferredWidth(65);
        tabelaAtividades.getColumnModel().getColumn(3).setMinWidth(0);
        tabelaAtividades.getColumnModel().getColumn(3).setPreferredWidth(0);
        tabelaAtividades.getColumnModel().getColumn(3).setMaxWidth(0);
        tabelaAtividades.getColumnModel().getColumn(4).setMinWidth(0);
        tabelaAtividades.getColumnModel().getColumn(4).setPreferredWidth(0);
        tabelaAtividades.getColumnModel().getColumn(4).setMaxWidth(0);

        tabelaAvisos.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Avisos"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tabelaAvisos.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        tabelaAvisos.getTableHeader().setReorderingAllowed(false);
        jScrollPane2.setViewportView(tabelaAvisos);

        inserirAtividade.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/add-icon.png"))); // NOI18N
        inserirAtividade.setText("Inserir atividade");
        inserirAtividade.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                inserirAtividadeActionPerformed(evt);
            }
        });

        alterar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/alterar-icon.png"))); // NOI18N
        alterar.setText("Alterar");
        alterar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                alterarActionPerformed(evt);
            }
        });

        excluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/delete-icon.png"))); // NOI18N
        excluir.setText("Excluir");
        excluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                excluirActionPerformed(evt);
            }
        });

        calendario.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                calendarioPropertyChange(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(calendario, javax.swing.GroupLayout.PREFERRED_SIZE, 537, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 572, Short.MAX_VALUE)
                            .addComponent(jScrollPane1))
                        .addContainerGap())
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(inserirAtividade, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(alterar, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(excluir, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(110, 110, 110))))
            .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(6, 6, 6)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 186, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(excluir)
                            .addComponent(alterar)
                            .addComponent(inserirAtividade)))
                    .addComponent(calendario, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        pack();
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        java.awt.Dimension dialogSize = getSize();
        setLocation((screenSize.width-dialogSize.width)/2,(screenSize.height-dialogSize.height)/2);
    }// </editor-fold>//GEN-END:initComponents

    private void btnUsuarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUsuarioActionPerformed
       this.enable();  // Fecha Tela Principal
       TelaUsuario usu = new TelaUsuario(null, true);
       usu.carregarTabela("");
       usu.setVisible(true); //Abre Tela Usuario
    }//GEN-LAST:event_btnUsuarioActionPerformed

    private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSairActionPerformed
       this.dispose();  // Fecha Tela Principal
       FormLogin fl = new FormLogin(null, true);
       fl.setVisible(true); // Abre Tela Login
    }//GEN-LAST:event_btnSairActionPerformed

    private void btnAlunoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAlunoActionPerformed
       this.enable(); // Fecha Tela Principal
       TelaAluno alu = new TelaAluno(null, true);
       alu.carregarTabela("");
       alu.setVisible(true); // Abre Tela Aluno
    }//GEN-LAST:event_btnAlunoActionPerformed

    private void btnDisciplinaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDisciplinaActionPerformed
       this.enable(); // Fecha Tela Principal
       TelaDisciplina dis = new TelaDisciplina(null, true);
       dis.carregarTabela("");
       dis.setVisible(true); // Abre Tela Disciplina
    }//GEN-LAST:event_btnDisciplinaActionPerformed

    private void btnCursoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCursoActionPerformed
       this.enable(); // Fecha Tela Principal
       TelaCurso cur = new TelaCurso(null, true);
       cur.carregarTabela("");
       cur.setVisible(true); // Abre Tela Curso
    }//GEN-LAST:event_btnCursoActionPerformed

    private void btnBackupActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBackupActionPerformed
       this.enable(); // Fecha Tela Principal
       TelaBackup bac = new TelaBackup(null, true);
       bac.setVisible(true); // Abre Tela Backup
    }//GEN-LAST:event_btnBackupActionPerformed

    private void btnProfessorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnProfessorActionPerformed
       this.enable(); // Fecha Tela Principal
       TelaProfessor pro = new TelaProfessor(null, true);
       pro.carregarTabela("");
       pro.setVisible(true); // Abre Tela Professor
    }//GEN-LAST:event_btnProfessorActionPerformed

    private void inserirAtividadeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_inserirAtividadeActionPerformed
        this.enable(); //Trava Tela
        TelaCadAtividade telaAtiv = new TelaCadAtividade (null, true);
        telaAtiv.setCadastrar(true);
        telaAtiv.setVisible(true); //Abre Tela Cadastrar Aluno
    }//GEN-LAST:event_inserirAtividadeActionPerformed

    private void alterarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_alterarActionPerformed
        if(tabelaAtividades.getSelectedRow() == -1){ // Não selecionou nenhuma Linha
            JOptionPane.showMessageDialog(null,"Selecione uma atividade para alterar", "Selecione a atividade", JOptionPane.INFORMATION_MESSAGE);
        }
        else
        {   
             
            //Obtem os dados de acordo com a linha ao qual foi selecionada.
            Integer linha = tabelaAtividades.getSelectedRow();
            if((Integer)tabelaAtividades.getValueAt(linha,4) == 1){
                JOptionPane.showMessageDialog(null,"Impossível alterar atividades inseridas pelo sistema!", 
                        "Alterar atividade", JOptionPane.INFORMATION_MESSAGE);
                return;
            }
            
            List<AtividadesBD> listaAtividades = new ArrayList<AtividadesBD>();
            int usuarioSistema;
            at.setHorario((String)tabelaAtividades.getValueAt(linha,0));
            at.setTituloAtividade((String)tabelaAtividades.getValueAt(linha,1));
            if ((Boolean)tabelaAtividades.getValueAt(linha,2))
                usuarioSistema = 1;
            else
                usuarioSistema = 0;
            at.setstatusAtividade(usuarioSistema);
            at.setCodigoAtividade((Integer)tabelaAtividades.getValueAt(linha,3));
            at.setData(data);

            //Converter o codigo para String, para passar ao método filtro.
            String campo = Integer.toString(at.getCodigoAtividade());
            
            //Armazenar o aluno referente ao codigo selecionado para capturarmos os documentos
            listaAtividades = atDao.filtro("cod_atividade", campo, "Atividades");
                        
            //Para o Aluno encontrado, setar o "valor" dos documentos.
            for(AtividadesBD ati : listaAtividades){ 
                 at.setDescricaoAtividade(ati.getDescricaoAtividade());
            }

            //at.setData(data);
           // at.setHorario((String)tabelaAtividades.getValueAt(linha, 0));
            //at.setTituloAtividade((String)tabelaAtividades.getValueAt(linha, 1));
            //at.setDescricaoAtividade((String)tabelaAtividades.getValueAt(linha, 2));
            //at.setCodigoAtividade((Integer)tabelaAtividades.getValueAt(linha,2));

            //Manda os dados para a tela de Alterar
            this.enable();
            TelaCadAtividade altAtividade = new TelaCadAtividade(null, true);
            altAtividade.setCadastrar(false);
            try {
                altAtividade.recebeObjejo(at);
            } catch (ParseException ex) {
                Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
            }
            altAtividade.setVisible(true);
        }
    }//GEN-LAST:event_alterarActionPerformed

    private void formWindowGainedFocus(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowGainedFocus
        try {
            refresh();
        } catch (ParseException ex) {
            Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_formWindowGainedFocus

    private void excluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_excluirActionPerformed
           if(tabelaAtividades.getSelectedRow() == -1){ // Não selecionou nenhuma Linha
            JOptionPane.showMessageDialog(null,"Selecione uma atividade para excluir", "Selecione a atividade", JOptionPane.INFORMATION_MESSAGE);
        }
        else
        {
            List<AtividadesBD> listaAtividades = new ArrayList<AtividadesBD>();

            listaAtividades = atDao.filtro("data", data, "Atividades");
            
            Object[] opcoes = { "Sim", "Não" };
             //Obtem os dados de acordo com a linha ao qual foi selecionada.
            Integer linha = tabelaAtividades.getSelectedRow();
            
            if((Integer)tabelaAtividades.getValueAt(linha,4) == 1){
                JOptionPane.showMessageDialog(null,"Impossível excluir atividades inseridas pelo sistema!", 
                        "Excluir atividade", JOptionPane.INFORMATION_MESSAGE);
                return;
            }
            Integer resposta =JOptionPane.showOptionDialog(null,"Deseja excluir esta atividade?", "Exclusão",JOptionPane.YES_NO_OPTION,
                    JOptionPane.QUESTION_MESSAGE, null,
                    opcoes, opcoes[1]);
            
             
                if(resposta == JOptionPane.OK_OPTION){
                //excluir
                if(atDao.excluirAtividade((Integer)tabelaAtividades.getValueAt(linha, 3))){
                    JOptionPane.showMessageDialog(null,"Exclusão Realizada com Sucesso", 
                        "Excluir", JOptionPane.INFORMATION_MESSAGE);                   
                }
                else{
                    JOptionPane.showMessageDialog(null,"Nao foi possivel realizar a exclusão", 
                        "Excluir", JOptionPane.INFORMATION_MESSAGE);
                }
            }
            else{
                JOptionPane.showMessageDialog(null,"Exclusão cancelada", "Exclusão", JOptionPane.INFORMATION_MESSAGE);
            }
        }
    }//GEN-LAST:event_excluirActionPerformed

    private void calendarioPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_calendarioPropertyChange
        try {
            //refresh ao mudar algo no calendário
           refresh();
        } catch (ParseException ex) {
            Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_calendarioPropertyChange

    private void btnTurmaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnTurmaActionPerformed
       this.enable(); // Trava Tela Principal
       TelaTurma tur = new TelaTurma(null, true);
       tur.carregarTabela("");
       tur.setVisible(true); // Abre Tela Turma
    }//GEN-LAST:event_btnTurmaActionPerformed

    private void tabelaAtividadesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tabelaAtividadesMouseClicked
        if(evt.getClickCount() == 2){
            if(tabelaAtividades.getSelectedRow() == -1){ // Não selecionou nenhuma Linha
                    JOptionPane.showMessageDialog(null,"Selecione uma atividade para visualizar", "Selecione uma atividade", JOptionPane.INFORMATION_MESSAGE);
            }
            else{   
                //Obtem os dados de acordo com a linha ao qual foi selecionada.
                Integer linha = tabelaAtividades.getSelectedRow();


                List<AtividadesBD> listaAtividades = new ArrayList<AtividadesBD>();

                at.setCodigoAtividade((Integer)tabelaAtividades.getValueAt(linha,3));
                at.setData(data);

                //Converter o codigo para String, para passar ao método filtro.
                String campo = Integer.toString(at.getCodigoAtividade());

                //Armazenar o aluno referente ao codigo selecionado para capturarmos os documentos
                listaAtividades = atDao.filtro("cod_atividade", campo, "Atividades");

                //Para o Aluno encontrado, setar o "valor" dos documentos.
                for(AtividadesBD ati : listaAtividades){ 
                        at.setHorario(ati.getHorario());
                        at.setTituloAtividade(ati.getTituloAtividade());
                        at.setDescricaoAtividade(ati.getDescricaoAtividade());
                }

                //Manda os dados para a tela de Alterar
                this.enable();
                TelaCadAtividade altAtividade = new TelaCadAtividade(null, true);
                    try {
                        altAtividade.visualizaAtividade(at);
                    } catch (ParseException ex) {
                        Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
                    }
                altAtividade.setTitle("Visualizar atividade");
                altAtividade.setVisible(true);
            }
        }
    }//GEN-LAST:event_tabelaAtividadesMouseClicked

    public void TabelaAtividades(String data){
       
        List<AtividadesBD> listaAtividades = new ArrayList<AtividadesBD>();
       
        listaAtividades = atDao.filtro("data", data, "Atividades");

        DefaultTableModel tbm = (DefaultTableModel)tabelaAtividades.getModel();

        for(int i = tbm.getRowCount()-1; i >= 0; i--){
            tbm.removeRow(i);
        }
        
        int i = 0;   
        
        for(AtividadesBD atv : listaAtividades){
            tbm.addRow(new String[1]);
            tabelaAtividades.setValueAt(atv.getHorario(), i, 0); //Objeto Linha Coluna
            tabelaAtividades.setValueAt(atv.getTituloAtividade(), i, 1);
            boolean statusAtividade;
            if (atv.getstatusAtividade() == 1)
                statusAtividade = true;
            else
                statusAtividade = false;
            tabelaAtividades.setValueAt(statusAtividade, i, 2);
            tabelaAtividades.setValueAt(atv.getCodigoAtividade(), i, 3);
            //atv.getUsuarioSistema()
            tabelaAtividades.setValueAt(atv.getUsuarioSistema(),i,4);
            i++;
        }
    }
    
     public void TabelaAvisos(){
        
        DefaultTableModel tbm = (DefaultTableModel)tabelaAvisos.getModel();

        for(int i = tbm.getRowCount()-1; i >= 0; i--){
            tbm.removeRow(i);
        }
        
        //teste nessa tela

        List<AtividadesBD> listaAvisos = new ArrayList<AtividadesBD>();

        listaAvisos = atDao.filtro("data", data, "Avisos");
        
        if(listaAvisos.isEmpty())
            return;
        
        int i = 0;
        String aviso = "- Existem atividades registradas para os dias:";
        String auxiliar = "";
        String dias="";
        for(AtividadesBD atv : listaAvisos){
            auxiliar = atv.getData();
            if(i==0)
                dias = dias + "" +auxiliar.charAt(auxiliar.length()-2) + auxiliar.charAt(auxiliar.length()-1);
            else
                dias = dias + ", "+auxiliar.charAt(auxiliar.length()-2) + auxiliar.charAt(auxiliar.length()-1);
            i++;
        }
            tbm.addRow(new String[1]);
            tabelaAvisos.setValueAt(aviso, 0, 0); //Objeto Linha Coluna
            tbm.addRow(new String[1]);
            tabelaAvisos.setValueAt(dias, 1, 0); //Objeto Linha Coluna        
     }


    public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new TelaPrincipal().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton alterar;
    private javax.swing.JButton btnAluno;
    private javax.swing.JButton btnBackup;
    private javax.swing.JButton btnCurso;
    private javax.swing.JButton btnDisciplina;
    private javax.swing.JButton btnProfessor;
    private javax.swing.JButton btnSair;
    private javax.swing.JButton btnTurma;
    private javax.swing.JButton btnUsuario;
    private com.toedter.calendar.JCalendar calendario;
    private javax.swing.JButton excluir;
    private javax.swing.JButton inserirAtividade;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTable tabelaAtividades;
    private javax.swing.JTable tabelaAvisos;
    // End of variables declaration//GEN-END:variables
}
